

                          Review of

                "Using ARexx on the Amiga, by
                Chris Zamara and Nick Sullivan"

                             By

                        Paul Gittings
                     2/27 Leichhardt St
                      Glebe, NSW 2037
                         Australia
                      PH: (2) 692-8038
     Internet/ACSnet/AARnet: paulg@kralizec.zeta.org.au





Book details: "Using ARexx on the Amiga" by Chris Zamara
              and Nick Sullivan, 1991, Abacus.
              ISBN: 1-55755-114-6
              Price: US$34.95

The thing that immediately strikes you about this book is 
its size, 424 pages.  That is more than the total number of 
pages in the "ARexx User's Reference Manual" supplied with 
William Hawes original ARexx and "ARexx User's Guide" 
supplied with the AmigaDOS 2.1.  Which is not to say that it 
is fair to compare these three books at all, let alone on 
the number of pages they contain.



William Hawes book and the ARexx User's Guide are meant more 
as reference manuals rather than detailed tutorials. "Using 
Arexx" on the other hand is a tutorial book aimed at the 
beginner to intermediate level of ARexx programmers; 
experienced programmers may find Merrill Callaway's book 
"The ARexx Cookbook" to be more suitable. 



As is appropriate for a book targeted at inexperienced users 
the early chapters aim at getting the reader acquainted with 
ARexx.  Most non-beginners will either skim through these  
first three chapters or skip them all together.



Section two is the main tutorial section of the book.  This 
section starts off with a chapter on simple programs in 
which basic programming concepts are introduced and the 
reader gets to see some simple ARexx scripts.  Subsequent 
chapters build up on this basic knowledge, with each chapter 
being based around key ARexx language features.



Each new chapter starts with an overview of what will be 
covered.   The authors are careful to take nothing for 
granted and carefully explain all terms and features.   
People with some knowledge of Rexx and/or ARexx may find 
this section as a whole a bit too wordy and may prefer just 
to browse through it and concentrate more on the reference 
section.  However, no matter what level of ARexx programmer 
you are I would suggest you spend some time dipping into 
this section as it contains not only pearls of wisdom with 
regard to ARexx programming but tips and suggestions on 
programming in general.  



Compared to the example programs in Callaway's book the 
examples in "Using ARexx" are much smaller and simpler  and 
therefore easier to understand; one could also argue that 
they are not as useful as Callaway's. The simplicity of the 
examples, I think, allows the reader to focus on the actual 
aspects of the ARexx language without been distracted by the 
complexities of the programming problem been solved.  If I 
had to simply state what the aims of these two books are I 
would say that "Using ARexx" is trying to teach ARexx 
programming where as Callaway's book is aimed at trying to 
teach people how to problem-solve using ARexx. I see them as 
complementing each other rather than in competition. 



The authors of "Using ARexx" make a special effort to 
encourage beginner ARexx programmers to experiment with the 
ARexx language.  To avoid the sometimes cumbersome method of 
entering ARexx instructions from the shell, or even having 
to write a script, the authors have supplied a program 
called Dialog, which can be found on the companion disk.  
Dialog accepts ARexx instructions directly from the user and 
will display the results of these instructions.  This allows 
for easy experimentation.  



As well as supplying many examples of how to write ARexx 
programs correctly the authors also point out common 
mistakes and errors.  Some of these examples are supplied as 
Dialog sessions and the reader is encouraged to experiment 
with the examples.   The authors teach ARexx in a way that, 
I feel, anybody should able to write working useful ARexx 
programs after reading this section.



The third section of the book describes how ARexx can be 
used to control or extend the capabilities of ARexx aware 
application programs. A large portion of this section  is 
devoted to describing how ARexx support is implemented in  a 
number of well know application programs. The descriptions 
include a number of example macros. Again the examples are 
not as complex or possibly as useful as the examples in 
Callaway's book. I would have been happier had fewer 
applications been covered in more detail.  However, I expect 
the authors were hoping that by covering a larger number of 
applications that most readers would at least find one of 
the applications they owned covered in this section.



The final section of the book is the reference section which 
describes all ARexx instructions and functions (including 
those in the rexxsupport.library).  When I bought the book I 
didn't think I would use this section much, since I own 
three other books which also contain an ARexx reference 
manual, instead I find that this is the one that I turn to 
most.  The reason is simple - it is the best organized.



The reference section is broken into two parts.  The first 
part is called the reference guide.   The reference guide 
lists all ARexx instructions and functions by functional 
group, ie, flow of control, numbers, file I/O,etc. Each 
entry includes a syntax description, a brief functional 
description and an identifier as to whether the entry is an 
instruction, built-in function or support library function.   
If you need more information than is supplied in the 
Reference Guide, then you look up the instruction or 
function in the "Instruction and Function Reference".  



The "Instruction and Function Reference", lists all ARexx 
instructions, built-in and support library functions in 
alphabetical order.  Each entry consists of a syntax summary 
and short functional description together with an identifier 
as to the type of entry; instruction, built-in or support 
function.  In addition, most entries have example code in 
one of several forms; complete scripts, a Dialog session, 
code fragments or complete functions.  As well each entry 
has a discussion section which supplies additional syntax 
details and technical information.  Once you have gained 
some knowledge in ARexx programming it is likely that this 
reference section will be the only section of any ARexx 
manual that you will ever look at.



The book also contains three small appendices and an index. 
The index is the only area in which I have a complaint.  
Instead of listing the instructions and functions in 
alphabetical order, ABBREV under A, they are listed under 
type entries; ABBREV is a built-in function so you have to 
look up built-in and under this entry look up ABBREV.  Not a 
major problem but one that can be frustrating at times.



As mentioned earlier, this book comes with a companion disk. 
This disk was a surprise bonus.  I expected that it would 
just contain all the listings of the ARexx example programs, 
which it does plus a whole lot more.  The authors of the 
book are also the authors of a hyermedia program called 
HyperBook.  They have used HyperBook to create a DiskGuide 
program which allows you to easily navigate around the 
contents of the disk; see figures 1 and 2.  This program 
also allows you to view the source of the example scripts 
and macros (see figure 3).  In addition to the example 
source and DiskGuide there are a number of utility programs 
and scripts; simple paint program, Dialog  and others not 
mentioned in the book.  One such additional program is 
RexxGuide.  This program contains the same data as the 
reference guide so you can look up the syntax of an ARexx 
instruction without opening a book. RexxGuide does however 
have one problem,it is not font insensitive; which, in this 
case, means if your default font is something other than 
topaz 8 RexxGuide may not display the entries clearly (the 
readme program also has this problem).  Other than this 
minor flaw the disk is a great addition to the book.  If you 
do purchase the book make sure that you spend some time 
examining the contents of the disk.



I am very pleased with my purchase of this book and I can't 
recommend it highly enough to anybody who wants to learn 
more about ARexx.  It covers the needs of beginners and 
intermediate ARexx programmers, and the reference section 
can be a real aid to even advanced programmers.

